package com.lsf.modules.system.service;

import com.lsf.common.api.vo.Result;
import com.lsf.modules.system.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 用户
 *
 * @author Alexander
 */
public interface UserService extends IService<User> {

    /**
     * 检查用户是否有效的
     *
     * @param user 用户
     * @return {@link Result}
     */
    Result checkUserIsEffective(User user);

    /**
     * 通过用户账号获取用户信息
     *
     * @param username 用户名
     * @return {@link User}
     */
    User getUserByName(String username);

    /**
     * 通过电话获取用户信息
     *
     * @param phone 电话
     * @return {@link User}
     */
    User getUserByPhone(String phone);

    /**
     * 通过电子邮件获取用户信息
     *
     * @param email 电子邮件
     * @return {@link User}
     */
    User getUserByEmail(String email);

    /**
     * 添加用户和角色关系
     *
     * @param user  用户
     * @param roleIds 角色
     */
    void addUserWithRole(User user,String roleIds);
}
